Crear recursos para ser utilizados en varios idiomas en un proyecto ASP.NET MVC.
Framework: .NET Framwork 4.7.2
Si queremos tener varios idiomas tenemos que crear tantos archivos resx, como idiomas queramos, lo importante es incluir el código del idioma en el nombre del archivo.
protected void Application_BeginRequest(object sender, EventArgs e)
{
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en");
}
<h2>@Resources.Listado.Coche</h2>
Como podemos ver se produce un error en Resources:
Para añadir la referencia seleccionamos el proyecto y nos vamos a Projects > Add Reference.
En este caso no tenemos configurada ninguna opción para el español, pero al detectar un idioma que no tiene configuración simplemente coge el idioma por defecto que en este caso es español.
Si en vez de acceder a nuestros recursos desde las vistas queremos hacerlo desde el controlado (o cualquiera otra parte del código C#), lo haremos de la siguiente manera:
ResourceManager rm = new ResourceManager("Resources.Listado", typeof(Listado).Assembly);
ViewBag.Objeto = rm.GetString("Casa");
Para mostrar el valor en una vista para este ejemplo asignamos el valor a un elemento de ViewBag (en este caso Objeto podría ser cualquier otro nombre).
En este caso estamos usando GetString para obtener el valor de Casa y como tenemos configurado el idioma para que se muestre en ingles pues se muestra "House".
C# | .Net | idiomas | recursos